package com.chengliang.zuoye.response;


import com.alibaba.fastjson.JSONObject;

import java.io.Serializable;
import java.util.HashMap;

public class JsonResult extends HashMap<String,Object> implements Serializable {


    /**
     * @param flag 操作是否成功标识
     * @return 自动判断数值 做出响应
     */
    public static JsonResult is(boolean flag){
       return flag?JsonResult.ok():JsonResult.error();
    }

    /**
     * @param flag 操作是否成功标识
     * @param msg  描述信息 如： 注册用户
     * @return 自动判断数值 做出响应
     */
    public static JsonResult is(boolean flag,String msg){
        return flag?JsonResult.ok(msg+"成功"):JsonResult.error(msg+"失败");
    }

    /**
     * json响应拓展参数方法
     * @param key key
     * @param value value数据
     * @return json对象
     */
    public JsonResult append(String key,Object value){
        this.put(key,value);
        return this;
    }

    public static JsonResult ok(){
        return new JsonResult(0,"操作成功",null);
    }

    public static JsonResult ok(String msg){
        return new JsonResult(0,msg,null);
    }

    public static JsonResult ok(Object data){
        return new JsonResult(0,"操作成功",data);
    }

    public static JsonResult error(){
        return error("操作失败");
    }

    public static JsonResult error(String msg){
        return new JsonResult(500,msg,null);
    }

    public static JsonResult error(Object data){
        return new JsonResult(500,"操作失败",data);
    }

    private JsonResult(Integer code,String msg,Object data){
        put("code",code);
        put("msg",msg);
        put("data",data);
    }

    @Override
    public String toString() {
        return JSONObject.toJSONString(this);
    }
}
